Optical code-reading systems are known and comprise: an illumination system which has the aim of generating and directing a light beam towards an optical code, for example a bar code; an optical group (generally comprising a lens system) which has the aim of collecting and focusing the light diffused by the optical code; a linear or two-dimensional sensor—for example, a CCD (charge-coupled device) sensor or a CMOS sensor—which has the aim of converting the optical signal into a continuous-time or discrete-time analog electrical signal; an interface which carries out analog pre-processing of the signal generated by the sensor so as to reduce the noise and generate a signal compatible with the downstream stages; an analog/digital converter which converts the analog signal received into binary form and transforms it into a succession of digital pulses; and a decoding system which processes the succession of digital pulses so as to extract the coded information from the optical code and output it in a form usable by processing electronic devices connected downstream or by display devices.
In reading systems there exists a high variability of the light signal detected by the sensitive surface of the sensor, in the absence of the optical code. This variability is due to the illumination conditions (the light generated by the illumination system is never constant over the entire illuminated surface, environmental light is variable, light reflections may be present, etc.), to the characteristics of the optical devices that receive the light, to the type of read code (in particular as regards contrast, i.e., the ratio between the code color and the background color, and the form of the code), to the sensor sensitivity characteristics (for example, characteristics due to the sensor dynamics which in certain cases may give rise to distortions), and to the reflectance of the surface on which the code is printed.
For example, in linear-type sensors, this variability in luminosity results in a variability of the electrical signal along the scanning line, a variability that affects the amplitude of the signal supplied to the interface, thus affecting decoding of the code. This may limit the reliability and operativeness of the reading system, for example in the case of poor or excessive illumination and in reading at a distance. Consequently, the above discussed luminosity variability, not depending on the code, represents a drawback that it is desirable to overcome.
In order to provide a partial solution to this drawback, at least as regards the variability due to the illumination system, it is possible to use complex illumination systems that are able to guarantee high illumination uniformity. Such a solution, however, involves a considerable increase in the cost of the optical code reader.